package ar.com.sistventa.form.articulos.impl;

import java.util.ArrayList;
import java.util.List;

import ar.com.sistventa.dao.ArticuloDAO;
import ar.com.sistventa.dao.CategoriaDAO;
import ar.com.sistventa.dao.MarcaDAO;
import ar.com.sistventa.dao.UnidadDAO;
import ar.com.sistventa.dao.impl.ArticuloDaoImpl;
import ar.com.sistventa.dao.impl.CategoriaDAOImpl;
import ar.com.sistventa.dao.impl.MarcaDAOImpl;
import ar.com.sistventa.dao.impl.UnidadDAOImpl;
import ar.com.sistventa.entities.Articulo;
import ar.com.sistventa.entities.Categoria;
import ar.com.sistventa.entities.Marca;
import ar.com.sistventa.entities.Unidad;

public class AgregarModificarArticulosFormImpl {
	private ArticuloDAO articuloDAO;
	private CategoriaDAO categoriaDAO;
	private MarcaDAO marcaDAO;
	private UnidadDAO unidadDAO;

	public AgregarModificarArticulosFormImpl() {
		articuloDAO = new ArticuloDaoImpl();
		categoriaDAO = new CategoriaDAOImpl();
		marcaDAO = new MarcaDAOImpl();
		unidadDAO = new UnidadDAOImpl();
	}

	public void agregarArticulo(Articulo articulo) {
		articuloDAO.guardar(articulo);
	}

	public void modificarArticulo(Articulo articulo) {
		articuloDAO.actualizar(articulo);
	}

	public List<Categoria> buscarCategorias(String descripcion) {
		List<Categoria> categorias = new ArrayList<Categoria>();

		if (descripcion.trim().equals("")) {
			categorias = categoriaDAO.getAllCategoria();
		} else {
			categorias = categoriaDAO.busquedaPorFiltro(descripcion);
		}

		return categorias;
	}

	public List<Marca> buscarMarcas(String descripcion) {
		List<Marca> marcas = new ArrayList<Marca>();

		if (descripcion.trim().equals("")) {
			marcas = marcaDAO.getAllMarca();
		} else {
			marcas = marcaDAO.busquedaPorFiltro(descripcion);
		}

		return marcas;
	}

	public List<Unidad> buscarUnidades(String descripcion) {
		List<Unidad> unidades = new ArrayList<Unidad>();

		if (descripcion.trim().equals("")) {
			unidades = unidadDAO.getAllUnidad();
		} else {
			unidades = unidadDAO.busquedaPorFiltro(descripcion);
		}

		return unidades;
	}

}
